home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / DShowIDL / Mstvca.idl < prev    next >
Encoding:
Text File  |  2002-11-12  |  42.2 KB  |  841 lines

  1. // MSTvCA.idl : IDL source for MSTvCA.dll
  2. //
  3.  
  4. // This file will be processed by the MIDL tool to
  5. // produce the type library (CA.tlb) and marshalling code.
  6.  
  7. import "oaidl.idl";
  8. import "ocidl.idl";
  9. #include "olectl.h"
  10.  
  11. /*    [
  12.         object,
  13.         dual,
  14.         uuid(49a32d3c-7d85-11d2-8895-00c04f794967),
  15.         helpstring("ITuneRequest Interface"),
  16.         pointer_default(unique)
  17.     ]
  18.     interface ITuneRequest : IDispatch
  19.     {
  20.     };
  21. */
  22. import "tuner.idl";            // includes the whole BDA world!  Yecko!
  23.  
  24.     interface ICAManager;
  25.     interface ICARequest;
  26.     interface ICAPolicy;
  27.     interface ICAPolicies;
  28.     interface ICAPoliciesInternal;
  29.     interface ICAToll;
  30.     interface ICATolls;
  31.     interface ICATollsInternal;
  32.     interface ICADenial;
  33.     interface ICADenials;
  34.     interface ICAOffer;
  35.     interface ICAOffers;
  36.     interface ICAComponent;
  37.     interface ICAComponents;
  38.  
  39. #define COLLECTID_Item                0
  40. #define COLLECTID_Count                1
  41. #define COLLECTID_Add                2
  42. #define COLLECTID_Remove            3
  43. #define COLLECTID_AddNew            4
  44. #define COLLECTID_CountDenied        5        // ICADenials
  45. #define COLLECTID_CountSelected        6        // ICADenials
  46. #define COLLECTID_PaySelectedTolls    7        // ICADenials
  47.  
  48. typedef enum 
  49. {
  50.     Unselected        = 0,
  51.     Selected        = 1
  52. } CATollState;
  53.  
  54. typedef enum 
  55. {
  56.     Denied             = 0,
  57.     Transient         = 1,
  58. //    Allowed             = 2,
  59.     DescriptionShort = 10,            // one of the description fields changed
  60.     DescriptionLong  = 11,            //    via a ICADenial::put_Description() 
  61.     DescriptionHTML  = 12,            // 
  62.     DescriptionXML   = 13            //    (keep these current+10 with list below...)
  63. } CADenialState;
  64.  
  65. typedef enum     
  66. {
  67.     Short        = 0,        // must be numeric, starting at 0.  (Used as array index).
  68.     Long        = 1,        //  in approximatly order of length in bytes
  69.     URL            = 2,
  70.     HTML        = 3,
  71.     XML            = 4,
  72.     kDescEnd    = 5            // invalid format, 1+ last real one (Used as array length).
  73. } CADescFormat;
  74.  
  75.  
  76. typedef enum 
  77. {
  78.     Request  = 1,
  79.     ComponentX = 2,
  80.     Offers   = 4,
  81.     PaidTolls = 8,
  82.     Policies  = 16,
  83.     Standard  = 15,        // all put the policies
  84.     All = 31            // all
  85. } CAUIDisplayFields;
  86.  
  87.             // ---------------------------------------------------------------
  88.             //   if add methods to ICAManagerInternal, be sure to add MAGICCALL in CAManagerProxy too..
  89.             // ---------------------------------------------------------------
  90.  
  91.     [
  92.         object,
  93.         uuid(11166301-DF8A-463a-B620-7BEC23542010),
  94.         dual,                                            // Helpers are Dual, IUnknown... so see from VB
  95.         hidden, restricted, 
  96.         helpstring("ICAManagerInternal Interface"),
  97.         pointer_default(unique)
  98.     ]
  99.     interface ICAManagerInternal : IUnknown
  100.     {
  101.         [          id(1),   helpstring("method Save")]                        HRESULT Save();
  102.         [          id(2),   helpstring("method Load")]                        HRESULT Load();
  103.         [propput, id(3),   helpstring("property MarkDirty")]                HRESULT MarkDirty([in] BOOL fDirty);
  104.         [propget, id(3),   helpstring("property MarkDirty")]                HRESULT MarkDirty([out, retval] BOOL *pfDirty);
  105.         [propput, id(4),   helpstring("property TuneRequest")]                HRESULT TuneRequest([in] ITuneRequest *ptunereq);
  106.         [          id(5),   helpstring("method GetDefaultUI")]                HRESULT GetDefaultUI([out] HWND *phwnd);
  107.         [          id(6),   helpstring("method SetDefaultUI")]                HRESULT SetDefaultUI([in] HWND hwnd);
  108.                     // return the main CAManager object, not the proxy one.
  109.         [propget, id(7),   helpstring("property CAManagerMain")]            HRESULT CAManagerMain([out,retval] ICAManager **ppManagerMain);
  110.         [propput, id(8),   helpstring("property BroadcastEventService")]    HRESULT BroadcastEventService([in] IBroadcastEvent *pBroadcastEventService);
  111.         [propget, id(8),   helpstring("property BroadcastEventService")]    HRESULT BroadcastEventService([out, retval] IBroadcastEvent **ppBroadcastEventService);
  112.         [         id(9),   helpstring("method DisplayDefaultUI")]           HRESULT DisplayDefaultUI([in] VARIANT_BOOL fDisplay);
  113.         [         id(10),  helpstring("method EnableDefaultUIPayTollsButton")]  HRESULT EnableDefaultUIPayTollsButton([in] VARIANT_BOOL fEnabled);
  114.         [         id(11),  helpstring("method UpdateDefaultUIForToll")]     HRESULT UpdateDefaultUIForToll([in] ICAToll *pToll,[in] CATollState enState);
  115.         [propput, id(12),  helpstring("property TuneRequestInt")]            HRESULT TuneRequestInt([in] ITuneRequest *ptunereq);
  116.         [         id(13),  helpstring("method AddDenialsFor")]                HRESULT AddDenialsFor([in] IUnknown *pUnk);     // see also ICAManager::get_DenialsFor()
  117.         [         id(14),  helpstring("method RemoveDenialsFor")]           HRESULT RemoveDenialsFor([in] IUnknown *pUnk);
  118.  
  119.         [          id(2201),helpstring("method NotifyRequestActivated")]        HRESULT NotifyRequestActivated([in] ICARequest *pReq);
  120.         [          id(2202),helpstring("method NotifyRequestDeactivated")]    HRESULT NotifyRequestDeactivated([in] ICARequest *pReq);
  121.         [          id(2203),helpstring("method NotifyOfferAdded")]            HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
  122.         [          id(2204),helpstring("method NotifyOfferRemoved")]            HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
  123.         [          id(2205),helpstring("method NotifyPolicyAdded")]            HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
  124.         [          id(2206),helpstring("method NotifyPolicyRemoved")]        HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
  125.         [          id(2207),helpstring("method NotifyRequestDenialAdded")]    HRESULT NotifyRequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  126.         [          id(2208),helpstring("method NotifyRequestDenialRemoved")]    HRESULT NotifyRequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  127.         [          id(2209),helpstring("method NotifyDenialTollAdded")]        HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  128.         [          id(2210),helpstring("method NotifyDenialTollRemoved")]    HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  129.         [          id(2211),helpstring("method NotifyTollDenialAdded")]        HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  130.         [          id(2212),helpstring("method NotifyTollDenialRemoved")]    HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  131.         [          id(2213),helpstring("method NotifyOfferTollAdded")]        HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  132.         [          id(2214),helpstring("method NotifyOfferTollRemoved")]        HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  133.         [         id(2215),helpstring("method NotifyTollStateChanged")]        HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
  134.         [         id(2216),helpstring("method NotifyDenialStateChanged")]    HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  135.         [         id(2217),helpstring("method NotifyComponentDenialAdded")]        HRESULT NotifyComponentDenialAdded([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  136.         [         id(2218),helpstring("method NotifyComponentDenialRemoved")]    HRESULT NotifyComponentDenialRemoved([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  137.  
  138.     };
  139.  
  140.     [
  141.         object,
  142.         uuid(11166302-DF8A-463a-B620-7BEC23542010),
  143.         dual,                                            // Helpers are Dual, IUnknown... so see from VB
  144.         hidden, restricted, 
  145.         helpstring("ICAManagerXProxy Interface"),
  146.         pointer_default(unique)
  147.     ]
  148.     interface ICAManagerXProxy : IUnknown
  149.     {
  150.         [propget, id(1),   helpstring("property PunkCAManagerProxy")]                   HRESULT PunkCAManagerProxy([out,retval] IUnknown **ppUnkCAManagerProxy);
  151.         [          id(2201),helpstring("method NotifyRequestActivated_XProxy")]          HRESULT NotifyRequestActivated_XProxy([in] ICARequest *pReq);
  152.         [          id(2202),helpstring("method NotifyRequestDeactivated_XProxy")]        HRESULT NotifyRequestDeactivated_XProxy([in] ICARequest *pReq);
  153.         [          id(2203),helpstring("method NotifyOfferAdded_XProxy")]                HRESULT NotifyOfferAdded_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
  154.         [          id(2204),helpstring("method NotifyOfferRemoved_XProxy")]              HRESULT NotifyOfferRemoved_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
  155.         [          id(2205),helpstring("method NotifyPolicyAdded_XProxy")]               HRESULT NotifyPolicyAdded_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
  156.         [          id(2206),helpstring("method NotifyPolicyRemoved_XProxy")]             HRESULT NotifyPolicyRemoved_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
  157.         [          id(2207),helpstring("method NotifyRequestDenialAdded_XProxy")]        HRESULT NotifyRequestDenialAdded_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  158.         [          id(2208),helpstring("method NotifyRequestDenialRemoved_XProxy")]      HRESULT NotifyRequestDenialRemoved_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  159.         [          id(2209),helpstring("method NotifyDenialTollAdded_XProxy")]           HRESULT NotifyDenialTollAdded_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  160.         [          id(2210),helpstring("method NotifyDenialTollRemoved_XProxy")]         HRESULT NotifyDenialTollRemoved_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  161.         [          id(2211),helpstring("method NotifyTollDenialAdded_XProxy")]           HRESULT NotifyTollDenialAdded_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  162.         [          id(2212),helpstring("method NotifyTollDenialRemoved_XProxy")]         HRESULT NotifyTollDenialRemoved_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  163.         [          id(2213),helpstring("method NotifyOfferTollAdded_XProxy")]            HRESULT NotifyOfferTollAdded_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  164.         [          id(2214),helpstring("method NotifyOfferTollRemoved_XProxy")]          HRESULT NotifyOfferTollRemoved_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  165.         [         id(2215),helpstring("method NotifyTollStateChanged_XProxy")]          HRESULT NotifyTollStateChanged_XProxy([in] ICAToll *pToll, [in] CATollState enStateLast);
  166.         [         id(2216),helpstring("method NotifyDenialStateChanged_XProxy")]        HRESULT NotifyDenialStateChanged_XProxy([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  167.         [         id(2217),helpstring("method NotifyComponentDenialAdded_XProxy")]      HRESULT NotifyComponentDenialAdded_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  168.         [         id(2218),helpstring("method NotifyComponentDenialRemoved_XProxy")]    HRESULT NotifyComponentDenialRemoved_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  169.     };
  170.  
  171.             // ---------------------------------------------------------------
  172.  
  173.  
  174.             // ---------------------------------------------------------------
  175.  
  176.     [
  177.         object,
  178.         uuid(11166420-DF8A-463a-B620-7BEC23542010),
  179.         dual,
  180.         helpstring("ICAPolicies Interface"),
  181.         pointer_default(unique)
  182.     ]
  183.     interface ICAPolicies : IDispatch
  184.     {
  185.         [propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  186.         [propget, id(COLLECTID_Count)]              HRESULT Count([out, retval] long *Count);
  187.         [propget, id(COLLECTID_Item)]              HRESULT Item([in] VARIANT Index, [out, retval] ICAPolicy **ppPolicy);
  188.         [         id(COLLECTID_Add)]              HRESULT Add([in] ICAPolicy *pPolicy);
  189.         [         id(COLLECTID_Remove)]              HRESULT Remove([in] VARIANT Index);
  190.     };
  191.  
  192.     [    object,
  193.         uuid(11166421-DF8A-463a-B620-7BEC23542010),
  194.         dual,
  195.         hidden, restricted, 
  196.         helpstring("ICAPoliciesInternal Interface"),
  197.         pointer_default(unique)
  198.     ]
  199.     interface ICAPoliciesInternal : IUnknown
  200.     {
  201.          [id(1),helpstring("method SetCAManager")]    HRESULT SetCAManager([in] ICAManager *pManager);
  202.          [id(2),helpstring("method CheckRequest")]    HRESULT CheckRequest([in] ICARequest *pReq);
  203.     };
  204.  
  205.             // ---------------------------------------------------------------
  206.  
  207.     [
  208.         object,
  209.         uuid(11166430-DF8A-463a-B620-7BEC23542010),
  210.         dual,
  211.         helpstring("ICATolls Interface"),
  212.         pointer_default(unique)
  213.     ]
  214.     interface ICATolls : IDispatch
  215.     {
  216.         [propget, id(DISPID_NEWENUM), restricted]    HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  217.         [propget, id(COLLECTID_Count)]                HRESULT Count([out, retval] long *Count);
  218.         [propget, id(COLLECTID_Item)]                HRESULT Item([in] VARIANT Index, [out, retval] ICAToll **ppToll);
  219.         [          id(COLLECTID_Add)]                HRESULT Add([in] ICAToll *pToll);
  220.         [          id(COLLECTID_Remove)]                HRESULT Remove([in] VARIANT Index);
  221.     };
  222.  
  223.     [
  224.         object,
  225.         uuid(11166431-DF8A-463a-B620-7BEC23542010),
  226.         dual,
  227.         hidden, restricted, 
  228.         helpstring("ICATolls Internal Interface"),
  229.         pointer_default(unique)
  230.     ]
  231.     interface ICATollsInternal : IUnknown            // workaround for not being able to get _ICAResDenialEvents to work
  232.     {                
  233.          [          id(1),helpstring("method SetCAManager")]                    HRESULT SetCAManager([in] ICAManager *pManager);
  234.          [          id(2),helpstring("method GetCAManager")]                    HRESULT GetCAManager([out] ICAManager **ppManager);
  235.           [          id(3),helpstring("method SetMustPersist")]                HRESULT SetMustPersist([in] BOOL fMustPersist);
  236.           [          id(4),helpstring("method Save")]                            HRESULT Save([in] IStorage *pstore,[in] BSTR bstrPrefix);
  237.          [          id(5),helpstring("method Load")]                            HRESULT Load([in] IStorage *pstore,[in] BSTR bstrPrefix);
  238.          [          id(6),helpstring("method NotifyStateChanged")]            HRESULT NotifyStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  239.          [          id(7),helpstring("method NotifyTollSelectionChanged")]    HRESULT NotifyTollSelectionChanged([in] ICAToll *pToll, [in] BOOL fSelected);
  240.       };
  241.             // ---------------------------------------------------------------
  242.  
  243.  
  244.     [
  245.         object,
  246.         uuid(11166440-DF8A-463a-B620-7BEC23542010),
  247.         dual,
  248.         helpstring("ICADenials Interface"),
  249.         pointer_default(unique)
  250.     ]
  251.     interface ICADenials : IDispatch
  252.     {
  253.         [propget, id(DISPID_NEWENUM), restricted]                        HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  254.         [propget, id(COLLECTID_Count) ]                                    HRESULT Count([out, retval] long *Count);
  255.         [propget, id(COLLECTID_Item)]                                    HRESULT Item([in] VARIANT Index, [out, retval] ICADenial **ppDenial);
  256.         [propget, id(COLLECTID_AddNew), helpstring("property AddNew")]    HRESULT AddNew([in] ICAPolicy *ppolicy, [in] BSTR bstrShortDesc, [in] IUnknown *pUnkDeniedObject, [in] long enDenialState, [out, retval] ICADenial **ppDenial);
  257.         [         id(COLLECTID_Remove)]                                    HRESULT Remove([in] VARIANT Index);
  258.         [propget, id(COLLECTID_CountDenied)]                            HRESULT CountDenied([out, retval] long *Count);
  259.         [propget, id(COLLECTID_CountSelected)]                            HRESULT CountSelected([out, retval] long *Count);
  260.         [          id(COLLECTID_PaySelectedTolls)]                        HRESULT PaySelectedTolls();
  261.     };
  262.  
  263.     [
  264.         object,
  265.         uuid(11166441-DF8A-463a-B620-7BEC23542010),
  266.         dual,
  267.         hidden, restricted, 
  268.         helpstring("ICADenialsInternal Interface"),
  269.         pointer_default(unique)
  270.     ]
  271.     interface ICADenialsInternal : IUnknown
  272.     {
  273.         [  id(1),helpstring("method SetCAManager")]                HRESULT SetCAManager([in] ICAManager *pManager);        
  274.         [  id(2),helpstring("method NotifyDenialStateChanged")]    HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  275.      };
  276.  
  277.  
  278.             // ---------------------------------------------------------------
  279.  
  280.     [
  281.         object,
  282.         uuid(11166450-DF8A-463a-B620-7BEC23542010),
  283.         dual,
  284.         helpstring("ICAOffers Interface"),
  285.         pointer_default(unique)
  286.     ]
  287.     interface ICAOffers : IDispatch
  288.     {
  289.         [propget, id(DISPID_NEWENUM) , restricted]                        HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  290.         [propget, id(COLLECTID_Count)]                                    HRESULT Count([out, retval] long *Count);
  291.         [propget, id(COLLECTID_Item)]                                    HRESULT Item([in] VARIANT Index, [out, retval] ICAOffer **ppOffer);
  292.         [propget, id(COLLECTID_AddNew), helpstring("property AddNew")]    HRESULT AddNew([in] ICAPolicy *pPolicy, [in] BSTR bstrName, [in] DATE dateStart, [in] DATE dateEnd, [out, retval] ICAOffer **ppOffer);
  293.         [          id(COLLECTID_Remove)]                                    HRESULT Remove([in] VARIANT Index);
  294.     };
  295.  
  296.     [
  297.         object,
  298.         uuid(11166470-DF8A-463a-B620-7BEC23542010),
  299.         dual,
  300.         helpstring("ICAComponents Interface"),
  301.         pointer_default(unique)
  302.     ]
  303.     interface ICAComponents : IDispatch
  304.     {
  305.         [propget, id(DISPID_NEWENUM) , restricted]                        HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  306.         [propget, id(COLLECTID_Count)]                                    HRESULT Count([out, retval] long *Count);
  307.         [propget, id(COLLECTID_Item)]                                    HRESULT Item([in] VARIANT Index, [out, retval] ICAComponent **ppComponent);
  308.   //      [          id(COLLECTID_Add)]                                    HRESULT Add([in] ICAComponent *pComponent);
  309.   //      [          id(COLLECTID_Remove)]                                    HRESULT Remove([in] VARIANT Index);
  310.     };
  311.  
  312.  
  313.     [
  314.         object,
  315.         uuid(11166361-DF8A-463a-B620-7BEC23542010),
  316.         dual,
  317.         hidden,
  318.         helpstring("ICAComponentInternal Interface"),
  319.         pointer_default(unique)
  320.     ]
  321.     interface ICAComponentInternal : IUnknown
  322.     {
  323.         [          id(1), helpstring("method RemoveAllDenials")]    HRESULT RemoveAllDenials();
  324.         [propget, id(2), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstrDescription);
  325.     };
  326.             // ---------------------------------------------------------------
  327.  
  328.  
  329.   [
  330.           object,
  331.           uuid(860A3FE2-DED1-40E2-896C-057681A8A1A8),
  332.           dual,
  333.           helpstring("ICADefaultDlg Interface"),
  334.           pointer_default(unique)
  335.   ]
  336.   interface ICADefaultDlg : IDispatch
  337.   {
  338.           [propput, id(DISPID_AUTOSIZE)]
  339.           HRESULT AutoSize([in]VARIANT_BOOL vbool);
  340.           [propget, id(DISPID_AUTOSIZE)]
  341.           HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
  342.           [propput, id(DISPID_BACKCOLOR)]
  343.           HRESULT BackColor([in]OLE_COLOR clr);
  344.           [propget, id(DISPID_BACKCOLOR)]
  345.           HRESULT BackColor([out,retval]OLE_COLOR* pclr);
  346.           [propput, id(DISPID_BACKSTYLE)]
  347.           HRESULT BackStyle([in]long style);
  348.           [propget, id(DISPID_BACKSTYLE)]
  349.           HRESULT BackStyle([out,retval]long* pstyle);
  350.           [propput, id(DISPID_BORDERCOLOR)]
  351.           HRESULT BorderColor([in]OLE_COLOR clr);
  352.           [propget, id(DISPID_BORDERCOLOR)]
  353.           HRESULT BorderColor([out, retval]OLE_COLOR* pclr);
  354.           [propput, id(DISPID_BORDERSTYLE)]
  355.           HRESULT BorderStyle([in]long style);
  356.           [propget, id(DISPID_BORDERSTYLE)]
  357.           HRESULT BorderStyle([out, retval]long* pstyle);
  358.           [propput, id(DISPID_BORDERWIDTH)]
  359.           HRESULT BorderWidth([in]long width);
  360.           [propget, id(DISPID_BORDERWIDTH)]
  361.           HRESULT BorderWidth([out, retval]long* width);
  362.           [propput, id(DISPID_DRAWMODE)]
  363.           HRESULT DrawMode([in]long mode);
  364.           [propget, id(DISPID_DRAWMODE)]
  365.           HRESULT DrawMode([out, retval]long* pmode);
  366.           [propput, id(DISPID_DRAWSTYLE)]
  367.           HRESULT DrawStyle([in]long style);
  368.           [propget, id(DISPID_DRAWSTYLE)]
  369.           HRESULT DrawStyle([out, retval]long* pstyle);
  370.           [propput, id(DISPID_DRAWWIDTH)]
  371.           HRESULT DrawWidth([in]long width);
  372.           [propget, id(DISPID_DRAWWIDTH)]
  373.           HRESULT DrawWidth([out, retval]long* pwidth);
  374.           [propput, id(DISPID_FILLCOLOR)]
  375.           HRESULT FillColor([in]OLE_COLOR clr);
  376.           [propget, id(DISPID_FILLCOLOR)]
  377.           HRESULT FillColor([out, retval]OLE_COLOR* pclr);
  378.           [propput, id(DISPID_FILLSTYLE)]
  379.           HRESULT FillStyle([in]long style);
  380.           [propget, id(DISPID_FILLSTYLE)]
  381.           HRESULT FillStyle([out, retval]long* pstyle);
  382.           [propputref, id(DISPID_FONT)]
  383.           HRESULT Font([in]IFontDisp* pFont);
  384.           [propput, id(DISPID_FONT)]
  385.           HRESULT Font([in]IFontDisp* pFont);
  386.           [propget, id(DISPID_FONT)]
  387.           HRESULT Font([out, retval]IFontDisp** ppFont);
  388.           [propput, id(DISPID_FORECOLOR)]
  389.           HRESULT ForeColor([in]OLE_COLOR clr);
  390.           [propget, id(DISPID_FORECOLOR)]
  391.           HRESULT ForeColor([out,retval]OLE_COLOR* pclr);
  392.           [propput, id(DISPID_ENABLED)]
  393.           HRESULT Enabled([in]VARIANT_BOOL vbool);
  394.           [propget, id(DISPID_ENABLED)]
  395.           HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
  396.           [propget, id(DISPID_HWND)]
  397.           HRESULT Window([out, retval]LONG_PTR* phwnd);            // was long* via the wizard, but doesn't compile Win64
  398.           [propput, id(DISPID_TABSTOP)]
  399.           HRESULT TabStop([in]VARIANT_BOOL vbool);
  400.           [propget, id(DISPID_TABSTOP)]
  401.           HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
  402.           [propput, id(DISPID_TEXT)]
  403.           HRESULT Text([in]BSTR strText);
  404.           [propget, id(DISPID_TEXT)]
  405.           HRESULT Text([out, retval]BSTR* pstrText);
  406.           [propput, id(DISPID_CAPTION)]
  407.           HRESULT Caption([in]BSTR strCaption);
  408.           [propget, id(DISPID_CAPTION)]
  409.           HRESULT Caption([out,retval]BSTR* pstrCaption);
  410.           [propput, id(DISPID_BORDERVISIBLE)]
  411.           HRESULT BorderVisible([in]VARIANT_BOOL vbool);
  412.           [propget, id(DISPID_BORDERVISIBLE)]
  413.           HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool);
  414.           [propput, id(DISPID_APPEARANCE)]
  415.           HRESULT Appearance([in]short appearance);
  416.           [propget, id(DISPID_APPEARANCE)]
  417.           HRESULT Appearance([out, retval]short* pappearance);
  418.           [propput, id(DISPID_MOUSEPOINTER)]
  419.           HRESULT MousePointer([in]long pointer);
  420.           [propget, id(DISPID_MOUSEPOINTER)]
  421.           HRESULT MousePointer([out, retval]long* ppointer);
  422.           [propputref, id(DISPID_MOUSEICON)]
  423.           HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
  424.           [propput, id(DISPID_MOUSEICON)]
  425.           HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
  426.           [propget, id(DISPID_MOUSEICON)]
  427.           HRESULT MouseIcon([out, retval]IPictureDisp** ppMouseIcon);
  428.           [propputref, id(DISPID_PICTURE)]
  429.           HRESULT Picture([in]IPictureDisp* pPicture);
  430.           [propput, id(DISPID_PICTURE)]
  431.           HRESULT Picture([in]IPictureDisp* pPicture);
  432.           [propget, id(DISPID_PICTURE)]
  433.           HRESULT Picture([out, retval]IPictureDisp** ppPicture);
  434.           [propput, id(DISPID_VALID)]
  435.           HRESULT Valid([in]VARIANT_BOOL vbool);
  436.           [propget, id(DISPID_VALID)]
  437.           HRESULT Valid([out, retval]VARIANT_BOOL* pbool);
  438.   };
  439.             // ---------------------------------------------------------------
  440.  
  441. [
  442.     uuid(11166000-DF8A-463a-B620-7BEC23542010),
  443.     version(1.0),
  444.     helpstring("Microsoft TV CA Type Library")
  445. ]
  446. library MSTvCALib
  447. {
  448.     importlib("stdole32.tlb");
  449.     importlib("stdole2.tlb");
  450.  
  451. // ---------------------------------------------------
  452. //            CAUTION - if Change events below, need to perform:
  453. //                    1) compile the MIDL file to generate the typelib
  454. //                    2) In VCC class view, <xxx>->Implement Connection Point (_ICA<xxx>Events)
  455. //                          to regenerate the  CProxy_ICA<xxx>Events<> code.    
  456. //                          Need to browse to objd\i386 directory and select MSTvCA.tlb
  457. //                    (The file MSTvCACP.h must be checked out.)    
  458. //                    Where <xxx> is Denials, Manager, Offers, Policies, Request, and Tolls
  459.  
  460.     [
  461.         uuid(11166298-DF8A-463A-B620-7BEC23542010),
  462.         helpstring("_ICAResDenialTreeEvents Interface")
  463.     ]
  464.     dispinterface _ICAResDenialTreeEvents
  465.     {
  466.         properties:
  467.         methods:
  468.         [id(1),helpstring("method PaidTollSelected")]            HRESULT PaidTollSelected([in] ICAToll *pToll, [in] long fSelected);
  469.     };
  470.  
  471.  
  472.     [
  473.         uuid(11166200-DF8A-463A-B620-7BEC23542010),
  474.         helpstring("ICAManagerEvents Interface")
  475.     ]
  476.     dispinterface _ICAManagerEvents
  477.     {
  478.         properties:
  479.         methods:
  480.         [id(2201),helpstring("method RequestActivated")]        HRESULT RequestActivated([in] ICARequest *pReq);
  481.         [id(2202),helpstring("method RequestDeactivated")]        HRESULT RequestDeactivated([in] ICARequest *pReq);
  482.         [id(2203),helpstring("method OfferAdded")]                HRESULT OfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
  483.         [id(2204),helpstring("method OfferRemoved")]            HRESULT OfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
  484.         [id(2205),helpstring("method PolicyAdded")]                HRESULT PolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
  485.         [id(2206),helpstring("method PolicyRemoved")]            HRESULT PolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
  486.         [id(2207),helpstring("method RequestDenialAdded")]        HRESULT RequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  487.         [id(2208),helpstring("method RequestDenialRemoved")]    HRESULT RequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  488.         [id(2209),helpstring("method DenialTollAdded")]            HRESULT DenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  489.         [id(2210),helpstring("method DenialTollRemoved")]        HRESULT DenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  490.         [id(2211),helpstring("method TollDenialAdded")]            HRESULT TollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  491.         [id(2212),helpstring("method TollDenialRemoved")]        HRESULT TollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  492.         [id(2213),helpstring("method OfferTollAdded")]            HRESULT OfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  493.         [id(2214),helpstring("method OfferTollRemoved")]        HRESULT OfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  494.         [id(2215),helpstring("method TollStateChanged")]        HRESULT TollStateChanged([in] ICAToll *pToll, [in] CATollState enState);
  495.         [id(2216),helpstring("method DenialStateChanged")]        HRESULT DenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enState);
  496.         [id(2217),helpstring("method ComponentDenialAdded")]    HRESULT ComponentDenialAdded([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
  497.         [id(2218),helpstring("method ComponentDenialRemoved")]    HRESULT ComponentDenialRemoved([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
  498.     };
  499.  
  500.     [
  501.         uuid(11166210-DF8A-463A-B620-7BEC23542010),
  502.         helpstring("ICARequestEvents Interface")
  503.     ]
  504.     dispinterface _ICARequestEvents
  505.     {
  506.         properties:
  507.         methods:
  508.         [id(1), helpstring("method CheckStarted")]    HRESULT CheckStarted([in] ICARequest *pRequest);
  509.         [id(2), helpstring("method CheckComplete")] HRESULT CheckComplete([in] ICARequest *pRequest,[in] long cDenials);
  510.     };
  511.     [
  512.         uuid(11166220-DF8A-463A-B620-7BEC23542010),
  513.         helpstring("_ICAPoliciesEvents Interface")
  514.     ]
  515.     dispinterface _ICAPoliciesEvents
  516.     {
  517.         properties:
  518.         methods:
  519.         [id(1), helpstring("method ItemAdded")]      HRESULT ItemAdded([in] ICAPolicy *pPolicy, long cPolicies);
  520.         [id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAPolicy *pPolicy, long cPolicies);
  521.     };
  522.  
  523.     [
  524.         uuid(11166230-DF8A-463A-B620-7BEC23542010),
  525.         helpstring("ICATollsEvents Interface")
  526.     ]
  527.     dispinterface _ICATollsEvents
  528.     {
  529.         properties:
  530.         methods:
  531.         [id(1), helpstring("method ItemAdded")]        HRESULT ItemAdded([in] ICAToll *pToll, [in] long cTolls);
  532.         [id(2), helpstring("method ItemRemoved")]    HRESULT ItemRemoved([in] ICAToll *pToll, [in] long cTolls);
  533.         [id(3), helpstring("method StateChanged")]    HRESULT StateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  534.     };
  535.  
  536.  
  537.     [
  538.         uuid(11166240-DF8A-463A-B620-7BEC23542010),
  539.         helpstring("ICADenialsEvents Interface")
  540.     ]
  541.     dispinterface _ICADenialsEvents
  542.     {
  543.         properties:
  544.         methods:
  545.         [id(1), helpstring("method ItemAdded")]        HRESULT ItemAdded([in] ICADenial *pDenial, [in] long cDenials);
  546.         [id(2), helpstring("method ItemRemoved")]    HRESULT ItemRemoved([in] ICADenial *pDenial, [in] long cDenials);
  547.         [id(3), helpstring("method StateChanged")]    HRESULT StateChanged([in] ICADenial *pDenial, [in] CADenialState enStateFrom);
  548.     };
  549.  
  550.     [
  551.         uuid(11166250-DF8A-463A-B620-7BEC23542010),
  552.         helpstring("ICAOffersEvents Interface")
  553.     ]
  554.     dispinterface _ICAOffersEvents
  555.     {
  556.         properties:
  557.         methods:
  558.         [id(1), helpstring("method ItemAdded")]        HRESULT ItemAdded([in] ICAOffer *pOffer, [in] long cOffers);
  559.         [id(2), helpstring("method ItemRemoved")]    HRESULT ItemRemoved([in] ICAOffer *pOffer, [in] long cOffers);
  560.     };
  561.  
  562.     [
  563.         uuid(11166260-DF8A-463A-B620-7BEC23542010),
  564.         helpstring("_ICAComponentsEvents Interface")
  565.     ]
  566.     dispinterface _ICAComponentsEvents
  567.     {
  568.         properties:
  569.         methods:
  570.         [id(1), helpstring("method ItemAdded")]        HRESULT ItemAdded([in] ICAComponent *pComponent, [in] long cComponent);
  571.         [id(2), helpstring("method ItemRemoved")]    HRESULT ItemRemoved([in] ICAComponent *pComponent, [in] long cComponent);
  572.     };        // --------------------------------
  573.     [
  574.         object,
  575.         dual,
  576.         uuid(11166300-DF8A-463a-B620-7BEC23542010),
  577.         helpstring("ICAManager Interface"),
  578.         pointer_default(unique)
  579.     ]
  580.     interface ICAManager : IDispatch
  581.     {
  582.         [propget, id(1),   helpstring("property Policies")]            HRESULT Policies([out, retval] ICAPolicies **ppPolicies);
  583.         [propget, id(2),   helpstring("property ActiveRequest")]    HRESULT ActiveRequest([out, retval] ICARequest **ppRequest);
  584.         [propget, id(3),   helpstring("property Offers")]            HRESULT Offers([out, retval] ICAOffers **ppOffers);
  585.         [propget, id(4),   helpstring("property PaidTolls")]        HRESULT PaidTolls([out, retval] ICATolls **ppTolls);
  586.         [propput, id(5),   helpstring("property UseDefaultUI")]        HRESULT UseDefaultUI([in] long fUseDefaultUI);
  587.         [propget, id(5),   helpstring("property UseDefaultUI")]        HRESULT UseDefaultUI([out, retval] long *pfUseDefaultUI);
  588.         [propget, id(6),   helpstring("property DenialsFor")]        HRESULT DenialsFor([in] IUnknown *pUnk, [out, retval] ICADenials **ppDenials);
  589.     };
  590.     
  591.     [
  592.         object,
  593.         uuid(11166310-DF8A-463a-B620-7BEC23542010),
  594.         dual,
  595.         helpstring("ICARequest Interface"),
  596.         pointer_default(unique)
  597.     ]
  598.     interface ICARequest : IDispatch
  599.     {
  600.         [propget, id(1), helpstring("property RequestedItem")]        HRESULT RequestedItem([out, retval] IUnknown **ppTunereq);
  601.         [propget, id(2), helpstring("property CAManager")]            HRESULT CAManager([out, retval] ICAManager **ppManager);
  602.         [propget, id(3), helpstring("property ScheduleEntry")]        HRESULT ScheduleEntry([out, retval] IUnknown **ppUnkScheduleEntry);    // IScheduleEntry?
  603.         [propget, id(4), helpstring("property Denials")]            HRESULT Denials([out, retval] ICADenials **ppDenials);
  604.         [propget, id(5), helpstring("property Components")]            HRESULT Components([out, retval] ICAComponents **pComponents);
  605.         [propget, id(6), helpstring("property Check")]                HRESULT Check([out, retval] long *pcDenials);
  606.         [propget, id(7), helpstring("property ResolveDenials")]        HRESULT ResolveDenials([out, retval] long *pcDenials);
  607.         [propget, id(8), helpstring("property CountDeniedComponents")]    HRESULT CountDeniedComponents([out, retval] long *pcDeniedComponents);
  608.     };
  609.  
  610.     [
  611.         object,
  612.         uuid(11166320-DF8A-463a-B620-7BEC23542010),
  613.         helpstring("ICAPolicy Interface"),                // client written
  614.         pointer_default(unique)
  615.     ]
  616.     interface ICAPolicy : IUnknown  // -- not IDispatch, let the client side implement that interface
  617.     {
  618.         [propget, id(0),   helpstring("property Name")]                HRESULT Name([out, retval] BSTR *pbstr);
  619.         [         id(1),   helpstring("method CheckRequest")]        HRESULT CheckRequest([in] ICARequest *pReq);
  620. //        [propget, id(2),   helpstring("property CAManager")]        HRESULT CAManager([out, retval] ICAManager **ppManager);
  621.         [propput, id(2),   helpstring("property CAManager")]        HRESULT CAManager([in] ICAManager *pManager);
  622.         [propget, id(3),   helpstring("property OkToPersist")]        HRESULT OkToPersist([out, retval] BOOL *pfOkToPersist);
  623.         [propget, id(4),   helpstring("property OkToRemove")]        HRESULT OkToRemove([out, retval] BOOL *pfOkToRemove);
  624.         [propget, id(5),   helpstring("property OkToRemoveDenial")]    HRESULT OkToRemoveDenial(ICADenial *pDenial, [out, retval] BOOL *pfOk);
  625.         [propget, id(6),   helpstring("property OkToRemoveOffer")]    HRESULT OkToRemoveOffer(ICAOffer *pOffer, [out, retval] BOOL *pfOk);
  626.     }
  627.  
  628.     [
  629.         object,
  630.         uuid(11166330-DF8A-463a-B620-7BEC23542010),
  631.         dual,
  632.         helpstring("ICAToll Interface"),                // also client written
  633.         pointer_default(unique)
  634.     ]
  635.     interface ICAToll : IUnknown    // -- also not IDispatch - client side implements that interface
  636.     {
  637. //        [propget, id(1), helpstring("property CAManager")]        HRESULT CAManager([out, retval] ICAManager **ppManager);
  638.         [propput, id(1), helpstring("property CAManager")]        HRESULT CAManager([in] ICAManager *pManager);
  639.         [         id(2), helpstring("method Select")]            HRESULT Select([in] BOOL fSelect);
  640.         [         id(3), helpstring("method PayToll")]            HRESULT PayToll();
  641.         [propget, id(4), helpstring("property Refundable")]        HRESULT Refundable([out, retval] BOOL *pfRefundable);
  642.         [         id(5), helpstring("method RefundToll")]        HRESULT RefundToll();
  643.         [propget, id(6), helpstring("property TolledObject")]    HRESULT TolledObject([out, retval] IUnknown **ppUnkTolled);
  644.         [propget, id(7), helpstring("property Denials")]        HRESULT Denials([out, retval] ICADenials **ppDenials);
  645.         [propget, id(8), helpstring("property Policy")]            HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
  646.         [propget, id(9), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
  647.         [propget, id(10),helpstring("property TimePaid")]        HRESULT TimePaid([out, retval] DATE *pdtPaid);
  648.         [propget, id(11),helpstring("property State")]            HRESULT State([out, retval] CATollState *penState);
  649.     };
  650.  
  651.     [
  652.         object,
  653.         uuid(11166340-DF8A-463a-B620-7BEC23542010),
  654.         dual,
  655.         helpstring("ICADenial Interface"),
  656.         pointer_default(unique)
  657.     ]
  658.     interface ICADenial : IDispatch
  659.     {
  660.         [propget, id(1), helpstring("property DeniedObject")]    HRESULT DeniedObject([out, retval] IUnknown **ppUnkDenied);
  661.         [propget, id(2), helpstring("property Policy")]            HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
  662.         [propget, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
  663.         [propput, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
  664.         [propget, id(4), helpstring("property State")]            HRESULT State([out, retval] CADenialState *penState);
  665.         [propput, id(4), helpstring("property State")]            HRESULT State([in] CADenialState enState);
  666.         [propget, id(5), helpstring("property Tolls")]            HRESULT Tolls([out, retval] ICATolls **ppTolls);
  667.         [         id(6),   helpstring("method NotifyTollStateChanged")]        HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  668.     };
  669.     
  670.     [
  671.         object,
  672.         uuid(11166350-DF8A-463a-B620-7BEC23542010),
  673.         dual,
  674.         helpstring("ICAOffer Interface"),
  675.         pointer_default(unique)
  676.     ]
  677.     interface ICAOffer : IDispatch
  678.     {
  679.         [propget, id(1), helpstring("property CAManager")]        HRESULT CAManager([out, retval] ICAManager **ppManager);
  680.         [propput, id(1), helpstring("property CAManager")]        HRESULT CAManager([in] ICAManager *pManager);
  681.         [propget, id(2), helpstring("property Policy")]            HRESULT Policy([out, retval] ICAPolicy **pppolicy);
  682.         [propget, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
  683.         [propput, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
  684.         [propget, id(4), helpstring("property StartTime")]        HRESULT StartTime([out, retval] DATE *pdtStart);
  685.         [propget, id(5), helpstring("property EndTime")]        HRESULT EndTime([out, retval] DATE *pdtEnd);
  686.         [propget, id(6), helpstring("property Tolls")]            HRESULT Tolls([out, retval] ICATolls **ppTolls);
  687.         [         id(7), helpstring("method NotifyTollStateChanged")]        HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  688.     };
  689.  
  690.     [
  691.         object,
  692.         uuid(11166360-DF8A-463a-B620-7BEC23542010),
  693.         dual,
  694.         helpstring("ICAComponent Interface"),
  695.         pointer_default(unique)
  696.     ]
  697.     interface ICAComponent : IDispatch
  698.     {
  699.         [propget, id(1), helpstring("property Component")]        HRESULT Component([out, retval] IComponent **ppComponent);
  700.         [propget, id(2), helpstring("property Denials")]        HRESULT Denials([out, retval] ICADenials **ppDenials);
  701.         [propget, id(3), helpstring("property Request")]        HRESULT Request([out, retval] ICARequest **ppComponent);
  702.     };
  703.  
  704.         // --------------------------------
  705.  
  706.     [
  707.         uuid(11166100-DF8A-463a-B620-7BEC23542010),
  708.         helpstring("CAManager Class")
  709.     ]
  710.     coclass CAManager
  711.     {
  712.         [default] interface ICAManager;
  713.         interface ICAManagerInternal;
  714. //        interface ICAManagerXProxy;                             // this is the actual outgoing 'event' interface
  715.         [default, source] dispinterface _ICAManagerEvents;
  716.     };
  717.  
  718.     [                // magic class used to avoid circular references through the CAManager.
  719.         hidden,
  720.         uuid(11166101-DF8A-463a-B620-7BEC23542010),
  721.         helpstring("CAManagerProxy Class")
  722.     ]
  723.     coclass CAManagerProxy
  724.     {
  725.         [default] interface ICAManager;
  726.         interface ICAManagerInternal;
  727. //        [default, source] dispinterface _ICAManagerEvents;  /// QUESTION ??? DO I want these just here, or in the true Manager, or both?
  728.     };
  729.  
  730.     [
  731.         uuid(11166540-DF8A-463a-B620-7BEC23542010),            // needed for user's tolls.
  732.         helpstring("CADenials Class")
  733.     ]
  734.     coclass CADenials
  735.     {
  736.         [default] interface ICADenials;
  737.         interface ICADenialsInternal;
  738.         [default, source] dispinterface _ICADenialsEvents;
  739.     };
  740.     
  741.                         // TODO - mark this as hidden...
  742.     [
  743.         uuid(11166550-DF8A-463a-B620-7BEC23542010),
  744.         helpstring("CAOffer Class")
  745.     ]
  746.     coclass CAOffer
  747.     {
  748.         [default] interface ICAOffer;
  749.     }; 
  750.  
  751.  
  752. /*    [
  753.         uuid(11166999-DF8A-463a-B620-7BEC23542010),
  754.         helpstring("CATempEvent_TempBuilder Class - used so we can build events the first time")
  755.     ]
  756.     coclass CATempEvent_TempBuilder
  757.     {
  758.         [source] dispinterface _ICAResDenialTreeEvents;
  759.         [source] dispinterface _ICAManagerEvents;
  760.         [source] dispinterface _ICARequestEvents;
  761.         [source] dispinterface _ICATollsEvents;
  762.         [source] dispinterface _ICADenialsEvents;
  763.         [source] dispinterface _ICAPoliciesEvents;
  764.         [source] dispinterface _ICAOffersEvents;
  765.         [source] dispinterface _ICAComponentsEvents;
  766.     };
  767. */
  768.             // -----------------------------------
  769.     [
  770.         object,
  771.         uuid(11166898-DF8A-463a-B620-7BEC23542010),
  772.         dual,
  773.         helpstring("ICAResDenialTree Interface"),
  774.         pointer_default(unique)
  775.     ]
  776.     interface ICAResDenialTree : IDispatch
  777.     {
  778.         [propget, id(1),   helpstring("property CAManager")]                    HRESULT CAManager([out, retval] ICAManager **ppCAManager);
  779.         [propput, id(1),   helpstring("property CAManager")]                    HRESULT CAManager([in] ICAManager *pCAManager);
  780.         [propget, id(2),   helpstring("property DisplayFields")]                HRESULT DisplayFields([out, retval] long *penFields);    // fields to display in default ResDenial UI
  781.         [propput, id(2),   helpstring("property DisplayFields")]                HRESULT DisplayFields([in] long enFields);                // fields to display in default ResDenial UI
  782.         [         id(3),   helpstring("method UpdateView")]                        HRESULT UpdateView([in] IUnknown *pUnk);                // if object is being viewed, updates it.
  783.                 // ResDenial control listens to these incoming sink events sent by Manager ((_ICAManagerEvents).. ID's Must match 
  784.         [          id(2201),helpstring("method NotifyRequestActivated")]            HRESULT NotifyRequestActivated([in] ICARequest *preq);
  785.         [          id(2202),helpstring("method NotifyRequestDeactivated")]        HRESULT NotifyRequestDeactivated([in] ICARequest *preq);
  786.         [          id(2203),helpstring("method NotifyOfferAdded")]                HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
  787.         [          id(2204),helpstring("method NotifyOfferRemoved")]                HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
  788.         [          id(2205),helpstring("method NotifyPolicyAdded")]                HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
  789.         [          id(2206),helpstring("method NotifyPolicyRemoved")]            HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
  790.         [          id(2207),helpstring("method NotifyRequestDenialAdded")]        HRESULT NotifyRequestDenialAdded([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
  791.         [          id(2208),helpstring("method NotifyRequestDenialRemoved")]        HRESULT NotifyRequestDenialRemoved([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
  792.         [          id(2209),helpstring("method NotifyDenialTollAdded")]            HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  793.         [          id(2210),helpstring("method NotifyDenialTollRemoved")]        HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  794.         [          id(2211),helpstring("method NotifyTollDenialAdded")]            HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  795.         [          id(2212),helpstring("method NotifyTollDenialRemoved")]        HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  796.         [          id(2213),helpstring("method NotifyOfferTollAdded")]            HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  797.         [          id(2214),helpstring("method NotifyOfferTollRemoved")]            HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  798.         [         id(2215),helpstring("method NotifyTollStateChanged")]            HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
  799.         [         id(2216),helpstring("method NotifyDenialStateChanged")]        HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  800.         [         id(2217),helpstring("method NotifyComponentDenialAdded")]        HRESULT NotifyComponentDenialAdded([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
  801.         [         id(2218),helpstring("method NotifyComponentDenialRemoved")]    HRESULT NotifyComponentDenialRemoved([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
  802.     };
  803.  
  804.     [
  805.         uuid(11166998-DF8A-463a-B620-7BEC23542010),
  806.         helpstring("CA Default RequestDenial Control")
  807.     ]
  808.     coclass CAResDenialTree
  809.     {
  810.         [default] interface ICAResDenialTree;
  811.         [default, source] dispinterface _ICAResDenialTreeEvents;
  812.     };
  813.  
  814.                 // -----------------------------
  815.  
  816.     [
  817.             uuid(11166991-DF8A-463a-B620-7BEC23542010),
  818.             helpstring("_ICADefaultDlgEvents Interface")
  819.     ]
  820.     dispinterface _ICADefaultDlgEvents
  821.     {
  822.             properties:
  823.             methods:
  824.     };
  825.  
  826.     [
  827.             uuid(11166990-DF8A-463a-B620-7BEC23542010),
  828.             helpstring("CADefaultDlg Class")
  829.     ]
  830.     coclass CADefaultDlg
  831.     {
  832.             [default] interface ICADefaultDlg;
  833.             [default, source] dispinterface _ICADefaultDlgEvents;
  834.     };
  835.  
  836.             // -------------------------------------
  837.             //  Magic way to define the SID_ ...
  838.  
  839.     cpp_quote("#define SID_CAManager CLSID_CAManager")
  840. };
  841.